This invention relates to a method for data retrieval in a computing device and more particularly to an intuitive method for retrieving personal management information stored in a handheld personal computer (H/PC) or the like. The invention also relates to a method for linking screens associated with the retrieval of data.
Electronic organizers such as personal digital assistants (PDA""s) and handheld personal computers (H/PC) have become increasingly popular for personal information management (PIM). Examples of such personal information include information of business contacts, appointments and tasks. These information are usually maintained in separate databases in a H/PC. An example of a H/PC is one running the WindowsCE operating system (OS) available from Microsoft, Redmond, Wash., USA. Each of the databases in the H/PC running WindowsCE is written to and read from through applications such as Contacts, Tasks and Calendar.
There are two aspects in the usage of such an electronic organizer: the entry and the retrieval of data. Since such organizers are used by mobile users, these users would prefer both the entry and retrieval of data to be as hassle-free as possible. Currently there are two methods for retrieving data in an electronic organizer such as a H/PC running WindowsCE. One of the methods is implemented in a xe2x80x9cFindxe2x80x9d tool, which is available in the Contacts, Tasks and Calendar applications. The activation of the xe2x80x9cFindxe2x80x9d tool causes a search conditions definition GUI window to appear on a display of the H/PC. To formulate the search conditions, a user needs to specify a search text for searching, which database or databases to search, and a start and an end date if the search is to be limited to a particular period.
The second method is a global search application which is able to search for any information that resides on the H/PC. One such application software is a bFIND application available from bSquare Development, Washington, U.S.A. This bFind application is separate from the Contacts, Tasks or Calendar applications. Unlike the xe2x80x9cFindxe2x80x9d tool, this bFind application is able to search more than just personal management information. The bFind application is able to search file contents, search for file names and other information matching a search text. However, the method for specifying search conditions is similar to that of the xe2x80x9cFindxe2x80x9d tool. A user is expected to enter several pieces of information to formulate the search conditions. For example, the user is required to enter a search text for searching, databases to carry out the search in and if files are involved, where and what type of files to search.
These two methods suffer from disadvantages. The two methods described above necessitate several manual steps for the definition of search conditions. First a user has to decide what information to retrieve. Having decided the information, the user has to decide a search text which is contained in the information. As example, the user has information stored in the H/PC of a person by the name of John Smith. In deciding the search text for searching, the user is burdened by having to decide whether xe2x80x9cJohn Smithxe2x80x9d or xe2x80x9cSmith Johnxe2x80x9d should be the search text. The user may even contemplate having a single-word search text consisting of either the name xe2x80x9cJohnxe2x80x9d or xe2x80x9cSmithxe2x80x9d. Next, the user has to specify the database or location to search for the information. The user has to decide where the original information is stored. For example, the user has to decide if the information is stored in the Contacts, Tasks, Calendar databases or in a particular file. If the information is stored in a file, the user may want to further specify a particular type of file to search. The user may additionally want to restrict the search to one in a particular period of time. For example, the information containing the name xe2x80x9cJohn Smithxe2x80x9d may well be stored in an Appointment record. Such a record may be more accurately and quickly retrieved if a search is limited to a particular period.
One is quickly drawn to the fact that as the user formulates the search conditions in the mind, the user has to also assimilate the search fields and try to break the search conditions up to fit the different fields as presented in a search-conditions-definition GUI screen. This mapping of formulated search conditions in the mind into the different fields in the search GUI slows the definition of the search conditions on the H/PC. This restrictive manner in which an application requires a user to enter a search conditions is unintuitive and impedes the process of definition of the search conditions. The method requires a user to be very knowledgeable of each search field in the GUI screen in order to be able to use them effectively. Using search fields to define the search conditions is definitely a disadvantage where speed is concerned.
The speed with which search conditions can be specified is limited by the fact that a similar application is named differently on organizers of different make. For example, a contact application in one organizer is known as a phone application in another organizer. Similarly, a calendar application in one organizer is known as an appointment application on another. The task of having to decide which database to search for a user who owns two such organizers limits the efficiency of searching. The task is also inconvenient and annoying.
The need to know the date format of an organizer which allows free form entry of date affects both the speed as well as the accuracy of search conditions specification involving dates. For example, when entering a date, one has to know whether the 1st of July 1998 is Jan. 7, 1998 or Jul. 1, 1998. As another example, all that are familiar with April Fool""s day knows that day is synonymous with 1st April. A user should not have to concern whether April Fool""s day should be specified as Jan. 4, 1998 or Apr. 1, 1998 on any particular organizer. Some organizers overcome the day and month ambiguity by allowing date selection to be made through a displayed GUI calendar. However, such a calendar display is cumbersome to manipulate, especially when the date of interest is months away from an initially displayed default date.
Another disadvantage of the two search methods is that once a new search is carried out, records of previous searches are lost. To search for a search text previously searched for, a user will have to repeat the search.
The foregoing therefore creates the need for an application software or a software function within an application software which a user can independently launch or invoke to allow the user to quickly define a set of search conditions as formed in the user""s mind. Once the information is entered, the user simply activates the search and leaves the proper formulation of the search conditions to the application or software function. The application or software function should also maintain previously retrieved data so that search for these data need not be repeated.
In one aspect the invention provides a method for retrieving data with a more intuitive manner of specifying search conditions. According to the preferred embodiment of the invention, the method is implemented as an application on a computing device. The method is suitable for retrieving information which is stored as records in the computing device. Records are retrieved if they meet the specified search conditions. A search condition comprises a search text and other search conditions. In a search operation, the application accepts a search command which contains the search text and other search conditions. The application then breaks the search command into words. The application translates any word which matches any predetermined keywords into an appropriate search condition. Words which do not match any predetermined keywords form the search text. Records which bear the search text and meet the search conditions are then retrieved.
In another aspect the invention provides a method for managing screens associated with a plurality of search operations. Each search operation comprises a set of at least two screens which are bidirectionally linked to each other. These screens are for a user to interface with the computing device during a search operation. Each new set of screens for a new search operation is also bidirectionally linked to a set of screens for a preceding search operation. This bidirectional linking of screens allows a user to move from one screen to another within and outside of a search operation.